<?php

    /**
    * This is the model class for table "user_info".
    *
    * The followings are the available columns in table 'user_info':
    * @property string $user_id
    * @property string $role
    * @property string $like_count
    */
    class UserInfo extends CActiveRecord
    {
        /**
        * Returns the static model of the specified AR class.
        * @param string $className active record class name.
        * @return UserInfo the static model class
        */
        public static function model($className=__CLASS__)
        {
            return parent::model($className);
        }

        /**
        * @return string the associated database table name
        */
        public function tableName()
        {
            return 'user_info';
        }

        /**
        * @return array validation rules for model attributes.
        */
        public function rules()
        {
            // NOTE: you should only define rules for those attributes that
            // will receive user inputs.
            return array(
                array('user_id', 'required'),
                array('user_id, like_count', 'length', 'max'=>10),
                array('role', 'length', 'max'=>5),
                // The following rule is used by search().
                // Please remove those attributes that should not be searched.
                array('user_id, role, like_count', 'safe', 'on'=>'search'),
            );
        }

        /**
        * @return array relational rules.
        */
        public function relations()
        {
            // NOTE: you may need to adjust the relation name and the related
            // class name for the relations automatically generated below.
            return array(
            );
        }

        /**
        * @return array customized attribute labels (name=>label)
        */
        public function attributeLabels()
        {
            return array(
                'user_id' => 'User',
                'role' => 'Role',
                'like_count' => 'Like Count',
            );
        }

        /**
        * Retrieves a list of models based on the current search/filter conditions.
        * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
        */
        public function search()
        {
            // Warning: Please modify the following code to remove attributes that
            // should not be searched.

            $criteria=new CDbCriteria;

            $criteria->compare('user_id',$this->user_id,true);
            $criteria->compare('role',$this->role,true);
            $criteria->compare('like_count',$this->like_count,true);

            return new CActiveDataProvider($this, array(
                'criteria'=>$criteria,
            ));
        }


        private $_model;
        public function getModel($user_id){
            if(!$this->_model)  $this->_model = $this->findByPk($user_id);   
            return $this->_model;        
        }



        public function getRoleData(){
            return array(
                'ADMIN' => Yii::t('app', 'Admin'),
                'MOD' => Yii::t('app', 'Mod'),
            );
        }



        public function getIsModOnly(){
            return in_array($this->role, array('MOD'));
        }
        public function getIsMod(){
            return in_array($this->role, array('MOD', 'ADMIN'));
        }
        public function getIsAdmin(){
            return in_array($this->role, array('ADMIN'));
        }
}